// Created by WXX on 2021/11/17 14:53
#include <iostream>
#include <vector>
#include <map>

using namespace std;

/**
 * 执行用时：220 ms, 在所有 C++ 提交中击败了19.50%的用户
 * 内存消耗：37.9 MB, 在所有 C++ 提交中击败了49.50%的用户
 */
class MyCalendarTwo {
public:
    map<int, int> S;  // 差分数组

    MyCalendarTwo() {

    }

    bool book(int start, int end) {
        S[start]++, S[end]--;  // 将原始区间[start, end)都加上一
        int sum = 0;  // 前缀和
        for (auto &[k, v] : S) {
            sum += v;
            if (sum >= 3) {  // 说明有时间被三段区间占用
                S[start]--, S[end]++;
                return false;
            }
        }
        return true;
    }
};

int main() {



    return 0;
}
